#!/usr/bin/python
# -*-coding:UTF-8 -*-

# ========================
# @Time  : 2021/2/7
# @Author: Sunny
# ========================

class Base:
    def run(self):
        print('base的run方法：吃饭---')

class A:
    def run(self):
        print('A的run方法：点外卖---')

class B:
    def run(self):
        print('B的run方法：不吃东西---')

#此函数只能传Base类型，否则会报错
def func2(name: Base):
    """
    python中函数参数没有类型限制，所以不存在多态
    鸭子类型:不要求严格的类型继承关系，只要能够正常使用就行
    :param name:
    :return:
    """
    #调用了Base类型对象的run方法
    name.run()

b1 = Base()

a = Base()

b = Base()

func2(b1)
func2(a)
func2(b)